Computing an address based on absolute addressing is relatively slower than computing an address based on relative addressing. For example, executable code that utilizes absolute addressing may increase computer processing unit (CPU) usage as compared with relative addressing. In one example, a load instruction may indicate to load a first register with data from a second register. The address of the data in the second register may be provided in the load instruction in the form of an absolute address (e.g., base register plus displacement), and, when a processor executes this load instruction, the processor must compute the physical address from the absolute address, and then load the data at the calculated address of the second register in the first register. However, when the processor executes a number of instructions referencing data in an absolute address format, the CPU usage may be relatively high.
Not all computer instructions are capable of taking advantage of relative addressing. For example, in the context of code fragments, conventional fragment generators may only incorporate a specific type of data (e.g., literals) that are accessible by a single base register associated with the code portion(s) (e.g., CSECT) into the fragment. The incorporation of literals into the code fragment permits the literals to be addressed using relative addressing. As a result, conventional fragment generators can only take advantage of relative addressing when accessing data within the base registers associated with the CSECT's they are built from.